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