PETSc components provide the functionality required for many parallel solutions of PDEs.
- Vec
-
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.
- Mat
-
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.
- PC
-
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.
- KSP
-
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.
- SNES
-
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.
- TS
-
Code for the time evolution of solutions of PDEs. In
addition, provides pseudo-transient continuation techniques for
computing steady-state solutions.