OpenMDAO v. 0.9.5 has been released. Download the go-script here. Release notes are available here. This release is another maintenance release to address issues reported by our user base. But this release also has a couple small backwards non-compatible changes as well.
The first one is a small update to the derivatives api. You can read about the new api in the docs. But here’s the short version. You now declare the variables you’re providing derivatives for explicitly in a separate function. This change streamlined things a bit and lets us add a bit more error checking.
The other change also needs some further discussion. Previously, allowing Slots to have an iotype created two unintended consequences: it allowed for issuing connections to a Slot object, and it caused Slot objects to appear in the Input/Output tabs of the GUI. Neither of these behaviors is desired.
We’ve taken several steps to address this issue.
- Starting with this release, OpenMDAO no longer supports iotype metadata for Slots. The instantiation of any Slot containing “iotype” as metadata will generate a FutureWarning.
- If a user needs to use “iotype”, we’ve created a new datatype, called Instance. Outside of the GUI, it has the same behavior as a Slot but supports having an iotype. In the GUI, Instance variables should appear in the Input/Output tabs of a component (but won’t show up in the slots tab).
- We know that some of our components and drivers previously had Slot objects with iotype. To address this, we’ve created “connectable” versions of these, located in the same packages/modules as their Slot-based counterparts. For example, ConnectableDOEdriver and DOEdriver can both be imported from openmdao.lib.drivers.doedriver. A non-exhaustive list of other examples include:
If you relied on any of the Slot-based versions for connections, you can easily swap them for the connectable version. Please let us know in the forums if there are any questions or problems with this change.