next up previous
Next: hypre Up: Software Packages Previous: Software Packages

PETSc

PETSc, the portable, extensible toolkit for scientific computation, provides library routines for solving large sparse linear systems through the Scalable Linear Equations Solvers (SLES) component[5]. This component allows the user to easily solve linear systems that are set up in a PETSc format. These formats include a standard sparse storage format (AIJ), a block diagonal format, and an interface to enter information about a structured grid. Once the system is set up in PETSc format, there is a call to SLESSolve() which solves the system.

Some of the options to the call to SLESSolve() allow you to select from a broad range of Krylov Subspace Methods to use, in conjunction with a preconditioner. The available Krylov Subspace Methods include GMRES(k) and BiCGStab. The preconditioners available from within PETSc include Jacobi, Block Jacobi, Additive Schwarz, and Multigrid. Multigrid must be used on a structured grid from within PETSc, but it is also available for unstructured grids through a interface to hypre.

One of the strengths of PETSc is the degree of customization. There are a plethora of options available for solving linear systems, which gives a lot of flexibility within the package to adjust the way you are solving a particular system based on knowledge of the system. There are a number of monitors and logging facilities built in to PETSc to help you determine whether or not PETSc is doing a good job of solving your system. The results shown in this paper utilize PETSc's ability to monitor itself and give detailed breakdowns of function calls and timings.


next up previous
Next: hypre Up: Software Packages Previous: Software Packages
John Fettig 2002-09-13