Application Examples

PETSc  
PETSc, the Portable, Extensible Toolkit for Scientific computation, provides sets of tools for the parallel (as well as serial), numerical solution of PDEs that require solving largescale, sparse nonlinear systems of equations. PETSc includes nonlinear and linear equation solvers that employ a variety of Newton techniques and Krylov subspace methods. PETSc provides several parallel sparse matrix formats, including compressed row, block compressed row, and block diagonal storage. The table below gives an overview of the main numerical components of the PETSc library: PETSc is designed to facilitate extensibility. Thus, users can incorporate customized solvers and data structures when using the package. PETSc also provides an interface to several external software packages including BlockSolve95, ESSL, Matlab, ParMeTis, PVODE, and SPAI. PETSc is fully usable from Fortran, C and C++, and runs on most UNIX basedsystems. PETSc has several features that make it very convenient for the application programmer. Users can create complete application programs for the parallel solution of nonlinear PDEs without writing much explicit messagepassing code themselves. Parallel vectors and sparse matrices can be easily and efficiently assembled through the mechanisms provided by PETSc. Furthermore, PETSc enables a great deal of runtime control for the user without any additional coding cost. The runtime options include control over the choice of solvers, preconditioners and problem parameters as well as the generation of performance logs.
PETSc was developed at Argonne National Laboratory, in the Mathematics and Computer Science Division, as a general purpose suite of tools for the scalable solution of partial differential equations and related problems. The PETSc team continues to enhance PETSc with new functionality and improved performance. Its principal developers are Satish Balay, Kris Buschelman, Bill Gropp, Dinesh Kaushik, Lois Curfman McInnes and Barry Smith. 

