gemseo / formulations

mdf module

The Multi-disciplinary Design Feasible formulation

class gemseo.formulations.mdf.MDF(disciplines, objective_name, design_space, maximize_objective=False, main_mda_class='MDAChain', sub_mda_class='MDAJacobi', **mda_options)[source]

Bases: gemseo.core.formulation.MDOFormulation

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

Constructor, initializes the objective functions and constraints

Parameters
  • main_mda_class (str) – classname of the main MDA, typically the MDAChain, but one can force to use MDAGaussSeidel for instance

  • 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.

  • sub_mda_class (str) – the type of MDA to be used, shall be the class name. (default MDAJacobi)

  • mda_options – options passed to the MDA at construction

classmethod get_default_sub_options_values(**options)[source]

When some options of the formulation depend on higher level options, a sub option defaults may be specified here, mainly for use in the API

Parameters

options – options dict required to deduce the sub options grammar

Returns

None, or the sub options defaults

get_expected_dataflow()[source]

Returns the expected data exchange sequence, uUsed for xdsm representation to be overloaded by subclasses

Returns

array of tuples (disc_from, disc_to, array of variable names)

get_expected_workflow()[source]

Returns the sequence of execution of the disciplines to be expected regarding the implementation. The returned value is an array containing disciplines, tuples of disciplines for concurrent execution. For instance : * [A, B] denotes the execution of A then the execution of B * (A, B) denotes the concurrent execution of A and B * [A, (B, C), D] denotes the execution of A then the concurrent execution of B and C then the execution of D.

Returns

array containing disciplines or tuples of disciplines. Used for xdsm representation To be overloaded by subclasses.

classmethod get_sub_options_grammar(**options)[source]

When some options of the formulation depend on higher level options, a sub option schema may be specified here, mainly for use in the API

Parameters

options – options dict required to deduce the sub options grammar

Returns

None, or the sub options grammar

get_top_level_disc()[source]

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

Returns

the list of top level disciplines