gemseo / core / derivatives

mda_derivatives module

Graph algorithms to solve the Jacobian accumulation problem for MDOChain and MDA.

gemseo.core.derivatives.mda_derivatives.traverse_add_diff_io_mda(coupling_structure, inputs, outputs)[source]

Set the required differentiated IOs for the disciplines in a chain.

Add the differentiated inputs and outputs to the disciplines in a chain of of executions, given the list of inputs with respect to which the derivation is made and the list of outputs to be derived. The inputs and outputs are a subset of all the inputs and outputs of the chain. This allows to minimize the number of linearizations to perform in the disciplines.

Uses a two ways (from inputs to outputs and then from outputs to inputs)

breadth first search graph traversal algorithm.

The graph is constructed by DependencyGraph, which represents the data connexions (edges) between the disciplines (nodes).

Parameters:
  • coupling_structure (MDOCouplingStructure) – The coupling structure of the MDA.

  • inputs (Iterable[str]) – The inputs with respect to which the chain chain is differentiated.

  • outputs (Iterable[str]) – The chain outputs to be differentiated.

Returns:

The merged differentiated inputs and outputs.

Return type:

DisciplineIOMapping