This update contains various commits made after testing with a more realistic (in-house) MDO problem.
Main updates:
Added support for discrete variables (in OpenMDAO 1.x this was known as pass_by_obj, in OpenMDAO 2.x it is implemented as discrete_input and discrete_output: behavior is basically the same in the OpenMDAO does not try to interpret its values and/or evaluate partials, therefore it works for strings and objects too)
Added support for self-loops: this can occur when a discipline updates a value which has to be converged (as an example, think about what happens when you combine discipline D1 and D2 into one block in the Sellar problem: D1+D2 has y2 both as an input and output); OpenMDAO does not allow this however, and I solved it by renaming the output and then adding a simple component right after the tool that "reverse-renames" it
It would be awesome to have a version bump and a new release on PyPI, so that I can declare the updated OpenLEGO as a dependency in other Python projects :)
This update contains various commits made after testing with a more realistic (in-house) MDO problem.
Main updates:
pass_by_obj
, in OpenMDAO 2.x it is implemented asdiscrete_input
anddiscrete_output
: behavior is basically the same in the OpenMDAO does not try to interpret its values and/or evaluate partials, therefore it works for strings and objects too)D1
andD2
into one block in the Sellar problem:D1+D2
hasy2
both as an input and output); OpenMDAO does not allow this however, and I solved it by renaming the output and then adding a simple component right after the tool that "reverse-renames" itIt would be awesome to have a version bump and a new release on PyPI, so that I can declare the updated OpenLEGO as a dependency in other Python projects :)