Aviary icon indicating copy to clipboard operation
Aviary copied to clipboard

Is pyoptspare a requirement or not?

Open iiwolf opened this issue 1 year ago • 4 comments

Desired documentation content.

Hello, minor gripe/suggestion here

The install instructions state that pip install om-aviary should get you up and running, and furthermore suggests that pyoptsparse is optional. Yet the exampling shown in the next line does not work because it uses --optimizer IPOPT, which evidently requires pyoptsparse. It took me a second to realize what was going on, but then I swapped it to --optimizer SLSQP to get it to run. This does run, but unfortunately does not solve, which is mentioned in issue #444.

Is there any existing documentation on your requested topic? Please describe.

No response

iiwolf avatar Aug 14 '24 21:08 iiwolf

Does this page help?

xjjiang avatar Aug 14 '24 22:08 xjjiang

That's exactly the page I followed. Again it just states pip install om-aviary, which is not sufficient to run the examples exactly as they are.

iiwolf avatar Aug 14 '24 22:08 iiwolf

Did you read the part in "Installation on Linux for Developers"? It works for Windows mostly.

xjjiang avatar Aug 15 '24 02:08 xjjiang

I'm not on Linux.

iiwolf avatar Aug 15 '24 15:08 iiwolf

Whether you need pyoptspare depends on what you will do. If you plan to use IPOPT or SNOPT, you'd better have it.

xjjiang avatar Aug 21 '24 22:08 xjjiang

I'm trying to figure out what you mean "by the next line" so I can update that. The main installation page doesn't actually contain any specific examples to run besides explaining how to run tests suites as far as I see.

To directly answer your question, pyoptsparse is not required unless you want to bring in additional optimizers like IPOPT or SNOPT. However many of our tests and some examples do currently use these optimizers. We will be keeping the tests as-is as we often test multiple different optimizers for on the same problem, but making sure the doc examples are compatible with a "basic" Aviary install is a good suggestion!

jkirk5 avatar Aug 24 '24 22:08 jkirk5

Hey thanks for your response! Sorry you're right my "next line" comment was unclear. What I meant was on this page (https://openmdao.github.io/Aviary/getting_started/onboarding_level1.html) it links the installation, which I followed, and then proceed to run the level 1 example command, which utilizes IPOPT, and thus doesn't work because the basic installation does not require IPOPT.

That's all! I may have confused things as my title didn't really capture the intent of the question.

I'm thinking a note on the example page would be the easiest solution. e.g.

We are ready to run some models. By default, Aviary runs the optimizer for up to 50 iterations. In order to reduce the run time, we will limit the maximum number of iterations to 1. It will be faster for these examples, but you will not get optimal solutions. Issue the following command (note this uses --IPOPT, so make sure to have pyoptspare installed)

Thank you for your time!

iiwolf avatar Aug 25 '24 20:08 iiwolf

I made a new issue to update documentation and default arguments to functions (https://github.com/OpenMDAO/Aviary/issues/502). I'll close out this issue since the new one covers the main problem with additional instructions on what I'd like changed - thanks for the feedback!

jkirk5 avatar Aug 26 '24 15:08 jkirk5