OpenMDAO/OpenMDAO-Framework — pull request #1004 by Kenneth-T-Moore (2012-06-13 14:53:04+00:00)
Title: Analytic Differentiator

1. Implemented a new differentiator that calculates the derivatives of a driver's workflow by solving a system of linear equations. The following features are supported:

a. Assembly recursion
b. Driver loops (coupled sensitivity)
c. Direct or Adjoint solution

2. Improvements to the Chain Rule differentiator

a. Fixed some bugs in handling of connection expressions
b. Removed support for direct connections into an assembly interior
c. Improved _find_edges() to find the edges of a solver loop (note, Chain Rule differentiator will never be able to handle solver loops)
d. General improvements and cleanup

3. ExecComp and ExecCompWithDerivatives can now handle expressions with math or numpy functions

4. New interface (ISolver) added for solve type drivers. Presently, these are BroydenSolver and FixedPointIterator

5. Cleaned some docstrings in expreval

Notes:

1. Some corner cases are not working:

a. Objective/Constraint expressions that connect to an *input* instead of an output
b. Systems with expressions on connections from an assembly interior to it's input or output boundary