OpenMDAO icon indicating copy to clipboard operation
OpenMDAO copied to clipboard

Develop some good AD test cases to check performance and provide user examples

Open JustinSGray opened this issue 2 years ago • 0 comments

The goal of this story is just to work on pure python functions and JAX. integration into OpenMDAO can come later. For now, lets just make sure we can use JAX for fwd/rev derivatives of real engineering examples.

Possible tests cases:

  1. The evtol take off test case from RevHack2020

  2. pycycle component for adding two flows:

  • for this, probably convert the engineering to a stand-alone function.
  • context: I rewrote this component when doing a big pycycle refactor. During that effort, I found that i was just too much work to do the derivatives by hand. So I used CS. However, given the size of the inputs/outputs, its likely that reverse mode partials would be faster. This should be benchmarked.
  1. The OpenAeroStruct components that Ken worked on in RevHack2020.
  • Ken said he merged two components. It probably makes sense to merge more of them. They were originally broken up to make derivatives easier. Engineering wise it makes sense to collapse them down, and that would give OpenMDAO much less intermediate variables to deal with too.
  • The AD performance as poor when Ken did it the first time. Maybe JAX is better now? Maybe collapsing more components down will help? Performance benchmarking will be important.

JustinSGray avatar Sep 03 '21 14:09 JustinSGray