Introduction

This document provides a user's guide for the Acro software library. The Acro Project is an effort to facilitate the design, development, integration and support of optimization software libraries. The goal of the Acro Project is to develop (parallel) optimization solvers and libraries using object-oriented software frameworks that facilitate the application of these solvers to large-scale engineering and scientific applications. Thus Acro includes both individual optimization solvers as well as optimization frameworks that provide abstract interfaces for flexible interoperability of solver components. The optimization packages in Acro have been written to support optimizers that are broadly useful for DOE's engineering and scientific applications. In particular, many solvers included in Acro can exploit parallel computing resources to solve optimization problems more quickly.

The Acro framework uses a two level software structure that connects a system of packages. An Acro package is usually developed by a (relatively) small set of developers to solve a specific set of problems. Packages exist beneath the Acro top level, which provides a common look-and-feel. Each package has its own structure, documentation and set of examples, and it is possibly available independently of Acro. However, Acro provides a framework for exploiting synergy between packages in a flexible manner.

Acro currently includes about ten different packages, several of which include interfaces to external software libraries. The entire set of packages covers a variety of algorithmic and numerical methods for optimization, as well as utilities that facilitate the development of software for scientific computing. A detailed description of each Acro package is beyond the scope of this document. Instead, we provide a birds-eye view of the Acro packages and their corresponding solvers. We also include information about how Acro can be installed and used. Further, we provide pointers to additional package documentation.