Rapid Optimization Library (ROL) is a C++ package for large-scale optimization and is part of the Trilinos software suite. It is used for the solution of optimal design, optimal control, and inverse problems in large-scale engineering applications. Other uses include mesh optimization and image processing. ROL aims to combine flexibility, efficiency, and robustness. Key features include: matrix-free application programming interfaces (APIs) that enable direct use of application data structures and memory spaces, linear solvers, nonlinear solvers, and preconditioners; state-of-the-art algorithms for unconstrained optimization, constrained optimization and optimization under uncertainty that enable inexact and adaptive function evaluations and iterative linear system solves; special APIs for simulation-based optimization that enable a streamlined embedding into engineering applications, rigorous implementation verification and efficient use; and modular interfaces throughout the optimization process that enable custom and user-defined algorithms, stopping criteria, hierarchies of algorithms, and selective use of a variety of tools and components.
Computational Mathematics Department, Center for Computing Research, Sandia National Laboratories, 1450 Innovation Parkway SE (Mail Stop 1320), Albuquerque, NM 87123