rSQP++

rSQP++: An object-oriented framework for successive quadratic programming An object-oriented framework called rSQP++ is currently being developed for successive quadratic programming (SQP). It is designed to support many different SQP algorithms and to allow for external configuration of application-specific linear algebra objects such as matrices and linear solvers. In addition, it is possible for a client to modify the SQP algorithms to meet other specialized needs without having to touch any of the source code within the rSQP++ framework or even having to recompile existing SQP algorithms. Much of this is accomplished through a set of carefully constructed interfaces to various linear algebra objects such as matrices and linear solvers. The initial development of rSQP++ was done in a serial environment and therefore issues related to the use of massively parallel iterative solvers used in partial differential equation-constrained optimization have not yet been addressed. In order to more effectively support parallelism, rSQP++ needs the addition and integration of an abstract vector interface to allow more flexibility in vector implementations. Encapsulating vectors away from algorithmic code would allow fully parallel linear algebra, but could also greatly restrict the kinds of operations that need to be performed. The difficulty in developing an abstract vector interface and a proposed design for a remedy are discussed.