#raggedright419#
PETSc is a package of routines aimed primarily at the solution of partial
differential equations. PETSc is designed to match advanced algorithms to new
and existing applications by taking an object-oriented approach to the design
of the routines. For example, the iterative accelerators that are part of
PETSc [#kspuserref##1#] have been designed to allow the user to specify all
of the vector
operations as well as matrix-vector product and preconditioning.
Thus, these iterative methods can be used with
nontraditional vectors, such as oct-trees or vectors distributed across a
distributed-memory parallel computer. PETSc also includes a number of
packages that aid in writing parallel programs. One of these is BlockComm, a
package for communicating blocks of data between processors. Another is a
parallel general (nonsymmetric) linear system solver using iterative methods
[#kspuserref##1#]. Currently, parallel versions of conjugate gradient,
conjugate gradient squared, BiCG-Stab, Freund's transpose-free QMR,
generalized minimum residual (GMRES), Chan's transpose-free QMR, Chebychev,
and Richardson are supported, along with a variety of preconditioners.
A parallel nonlinear system solver is also available.
All of the parallel communication in PETSc is done with Chameleon. Porting
PETSc, with the exception of the Fortran library problem, required no special
effort. A version of PETSc that can take advantage of IBM's ESSL (when
available) has been developed; the object-oriented nature of PETSc means that
users can take advantage of these changes by relinking rather than rewriting
their code.
BlockSolve [#jpima##1#] is a software library for solving large, sparse
systems
of linear equations on massively parallel computers. The matrices
must be symmetric but may have an arbitrary sparsity structure.
BlockSolve is a portable package that is compatible with several
different message-passing paradigms including EUIH but not EUI.
%