pyOptSparse is an object-oriented framework for formulating and solving nonlinear constrained optimization problems in an efficient, reusable, and portable manner. It is a fork of pyOpt that uses sparse matrices throughout the code to more efficiently handle large-scale optimization problems. Many optimization techniques can be used in pyOptSparse, including both gradient-based and gradient-free methods. A visualization tool called OptView also comes packaged with pyOptSparse, which shows the optimization history through an interactive GUI. An example output from OptView is shown below.
pyOptSparse provides Python interfaces for a number of optimizers. ALPSO, CONMIN, IPOPT, NLPQLP, NSGA2, PSQP, SLSQP, ParOpt and SNOPT are currently tested and supported.
We do not provide the source code for SNOPT and NLPQLP, due to their restrictive license requirements. Please contact the authors of the respective optimizers if you wish to obtain them. Furthermore, ParOpt and IPOPT are available as a open source package but must be installed separately. Please see the documentation page of each optimizer for purchase and installation instructions.
pyOptSparse can be used in the following optimization frameworks:
- MACH-Aero
- OpenMDAO and by extension OpenAeroStruct
- SUAVE
Please see the documentation for installation details and API documentation.
Testing is done with the testflo
package developed by the openMDAO team, which can be installed via pip install testflo
.
To run the tests, simply type testflo .
in the root directory.
If you use pyOptSparse, please see this page for citation information. A list of works that have used pyOptSparse can be found here
pyOptSparse is licensed under the GNU Lesser General Public License.
See LICENSE
for the full license.
Copyright (c) 2011 University of Toronto
Copyright (c) 2014 University of Michigan
Additional copyright (c) 2014 Gaetan K. W. Kenway, Ruben Perez, Charles A. Mader, and
Joaquim R. R. A. Martins
All rights reserved.