pyOptSparse: A Python framework for large-scale constrained nonlinear optimization of sparse systems
N. Wu, G. Kenway, C. A. Mader, J. Jasa, and J. R. R. A. Martins
Journal of Open Source Software, 5(54):2564, 2020
pyOptSparse is an optimization framework designed for constrained nonlinear optimization of large sparse problems and provides a unified interface for various gradient-free and gradient-based optimizers. By using an object-oriented approach, the software maintains independence between the optimization problem formulation and the implementation of the specific optimizers. The code is MPI-wrapped to enable execution of expensive parallel analyses and gradient evaluations, such as when using computational fluid dynamics (CFD) simulations, which can require hundreds of processors. The optimization history can be stored in a database file, which can then be used both for post-processing and restarting another optimization. A graphical user interface application is provided to visualize the optimization history interactively.