overview research publications people software acknowledgements contact
software

An important component of the Calient Project is the development of a general-purpose parallel software library for large-scale PDE-based data assimilation and optimal control. Efficient and robust coupling of optimization algorithms with new or legacy simulation codes presents several software engineering challenges. We devise new object-oriented software to allow efficient integration of optimizers and PDE solvers. Several algorithmic and large scale PDE-constrained optimization issues have already been addressed by software packages developed by our research team which will be integrated and extend into the software library we develop.

Check below some of these software packages currently in development.


rSQP++  rSQP++ is an object-oriented framework that allows efficient SAND optimization for a broad variety of engineering modeling systems. It is designed to support many different SQP algorithms and to allow for external configuration of specialized 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 modify any of the source code within the rSQP++ framework, or even having to recompile existing SQP algorithms. Much of this capability is accomplished through a set of carefully constructed interfaces to various linear algebra objects such as matrices and linear solvers

In order to support parallelism more effectively, we are adding and integrating a flexible abstract vector interface in rSQP++ to allow more flexibility in vector implementations. This vector encapsulation will allow fully parallel linear algebra. The rSQP++ framework has been benchmarked on a wide variety of math programming problems and has been demonstrated on nonlinear model predictive control problems as well as preliminary optimization of CVD reactors.

Visit the rSQP++ web page.

Veltisto Veltisto is also a SAND optimization package, and has been designed specifically for PDE-constrained optimization. It it is an extension of the PETSc library  and thus provides full support for MPI-based parallelism and a seamless integration of optimization and PDE-solution algorithms within the PETSc environment. Veltisto has been tested on optimal control of Navier-Stokes flows for problems with up to a million unknowns on hundreds of processors.

Visit the Veltisto web page.

TRICE TRICE is another SAND optimization package designed for PDE-constrained optimization. The optimization algorithms are matrix free. TRICE communicates with the application through a set of interfaces. TRICE will be reimplemented in an object-oriented framework using the abstract vector interface of rSQP++. Among other PDE constrained problems, TRICE has been applied to the thermal control of a CVD reactor.

Visit the TRICE web page.

IPOPT IPOPT is an implementation of a primal-dual interior point algorithm for solving Large-Scale Nonlinear Optimization Problems (NLPs) (with interfaces to AMPL and CUTEr) of the form

(1) min f(x)
(2) s.t. c(x) = 0
(3) x_L <= x <= x_U

The objective function f: R^n ---> R and the equality constraints c: R^n ---> R^m (m <= n) are assumed to be twice continuously differentiable and can be nonlinear and nonconvex. In (3), not all variables need to have lower and upper bounds.

Visit the IPOPT web page.

Multivac The C++ library Multivac provides an object-oriented framework for front tracking with level set methods in two dimensions. It features efficient algorithms, including the narrow band level set method and the fast marching method. Several numerical integration schemes are available, which support fairly general front advance functions ("speed functions") but also allow the user to take advantage of features of simple speed functions. A simulation is defined by a set of objects (initialization, numerical solver, speed function, etc.). Therefore, Multivac is very flexible and may easily be extended. Multivac has been successfully used for wildland firespread modelling and for the growth of Si-based nanofilms, and its development is currently driven by these two applications. It is an open source code provided under the GNU General Public License.

Visit the Multivac web page.

 


Overview | Research | Publications | People | Software | Acknowledgements | Contact
Copyright Carnegie Mellon University 2002