PETSc components provide the functionality required for many parallel solutions of PDEs.
Provides the vector operations required for setting up and
solving large-scale linear and nonlinear problems. Includes easy-to-use
parallel scatter and gather operations, as well as special-purpose code
for handling ghost points for regular data structures.
A large suite of data structures and code for the manipulation of
parallel sparse matrices. Includes four different parallel matrix
data structures, each appropriate for a different class of problems.
A collection of sequential and parallel preconditioners,
including (sequential) ILU(k), LU, and (both sequential and parallel)
block Jacobi, overlapping additive Schwarz methods and structured MG.
Parallel implementations of many popular Krylov subspace
iterative methods, including GMRES, CG, CGS, Bi-CG-Stab, two variants
of TFQMR, CR, and LSQR. All are coded so that they are immediately
usable with any preconditioners and any matrix data structures,
including matrix-free methods.
Data-structure-neutral implementations of Newton-like
methods for nonlinear systems. Includes both line search and trust
region techniques with a single interface. Employs by default the above
data structures and linear solvers. Users can set custom monitoring
routines, convergence criteria, etc.
Code for the time evolution of solutions of PDEs. In
addition, provides pseudo-transient continuation techniques for
computing steady-state solutions.